﻿using YookingBizWQW.Class.Credit.pub;
using YookingInterfaceWeixin.Class.WxPublic;

namespace YookingBizWQW.Class.WeiXin
{
    public class clsWxNotify
    {
        //注释：王庆文 2020年05月11日=====================================================================================
        //微信完成付款之后，会异步反馈回来一些消息，接收、验证、解析这些消息，并记录到后台日志文件中
        //  1、同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。
        //  2、后台通知交互时，如果微信收到商户的应答不符合规范或超时，微信会判定本次通知失败，
        //     重新发送通知，直到成功为止（在通知一直不成功的情况下，微信总共会发起多次//通知，
        //     通知频率为15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 总计 24h4m），
        //     但微信不保证通知最终一定能成功。
        //  3、在订单状态不明或者没有收到微信支付结果通知的情况下，建议商户主动调用微信支付【查询订单API】确认订单状态。
        public string WxNotify_ProcessBiz(string strAppID, string strOrderID)
        {
            //通知微信，YOOKING后台处理成功，还是失败
            string strPayStatus = "fail"; //默认失败

            //获取指定APPID的Yooking业务逻辑代号
            string strAppLogic = clsWxVariate.GetAppLogic(strAppID);

            #region 根据支付结果，开始处理对应的后台业务逻辑

            if (strAppLogic.ToUpper() == "YONGCANBAO")
            {
                strPayStatus = "success"; //【用餐宝】付款已成功
            }
            else if (strAppLogic.ToUpper() == "BALABALA")
            {
                strPayStatus = "success"; //【巴拉巴拉商户版】【巴拉巴拉个人版】付款已成功
            }
            else if (strAppLogic.ToUpper() == "CHINAFOOD")
            {
                strPayStatus = "success"; //【ChinaFood】付款已成功
            }
            else if (strAppLogic.ToUpper() == "KEDOUYOUDU")
            {
                strPayStatus = "success"; //【蝌蚪有读公众号】【蝌蚪有读APP】付款已成功
            }
            else if (strAppLogic.ToUpper() == "JINMIAOHUOKE")
            {
                strPayStatus = "success"; //【金喵获客】付款已成功
            }
            else if (strAppLogic.ToUpper() == "ZHIXIANG_ZHIHUISHEQU")
            {
                strPayStatus = "success"; //【掷象科技_智慧社区】付款已成功
            }
            else if (strAppLogic.ToUpper() == "ZHENHUANGUANJIA")
            {
                //【真还管家】进行支付处理、会员升级、上级、上上级奖励
                clsMbrPayNotify myBiz = new clsMbrPayNotify();
                strPayStatus = myBiz.PayNotify_HandleCreditBiz(strAppID, strOrderID);
            }
            else
            {
                strPayStatus = "success"; //不做业务处理，直接通知支付宝付款已成功
            }

            #endregion

            return strPayStatus; //最终的业务处理结果状态
        }



    }
}
